A computer network is used for a number of different purposes, including sending electronic mail, browsing the Internet, sharing files and conducting videoconferences. The various data transmissions carried by the network cause fluctuations in the available network bandwidth. Each data transmission sent over the network consumes some portion of the network's total bandwidth, leaving progressively less bandwidth for other transmissions. With respect to videoconferencing, the fluctuation in available bandwidth can be particularly troublesome. For example, if an individual is engaged in a videoconference with another person, an increase in network traffic can degrade the quality of the video or audio.
In response to an increase in network traffic, the videoconference data transmission rate may be reduced in order to minimize lag, transmission gaps, or connection loss. However, if additional bandwidth becomes available on the network due to a decrease in network traffic, then continued transmission at the reduced bit rate is unnecessary. If the videoconference system could detect the additional available bandwidth, then the videoconference data transmission rate could be increased to take advantage of the available bandwidth.
Some videoconferencing systems reduce the videoconference transmission rate, but do not attempt to increase the transmission rate if additional bandwidth becomes available. Other systems increase and decrease the transmission rate, but do so in a manner that causes the transmission rate to “thrash” or to oscillate between a higher transmission rate and a lower transmission rate.
Therefore, there is a need in the art for detecting changes in the available bandwidth and optimizing the bit rate of a videoconference transmission. There is a further need to keep proper statistical and historical data to allow the optimization to be made without thrashing between higher and lower transmission rates.